package com.esteel.settlement.pa.packet;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

import org.hibernate.validator.constraints.Length;
import org.hibernate.validator.constraints.NotEmpty;

/**
 *请求包：交易网－> 监管系统
 * 交易网发起 平台支付与收取
 * zhouwentong
 */
@XmlRootElement(name="Result") 
@XmlAccessorType(XmlAccessType.FIELD)
public class PlatformPayCollectPB1031 extends PaPacket{

	public static int SETTIN=1;//会员支付到市场清收账户
	public static int SETTOUT=2;//市场支付到会员
	public static int SETTFREEZEIN=3;//会员冻结支付到市场清收账户
	
	private static final long serialVersionUID = -2116666233494928858L;
	 //资金汇总账号
	 @XmlElement(name="SupAcctId")
	 @Length(max=32)
	 @NotEmpty
	 private String supAcctId;
	 //功能标志  1：会员支付到市场  2：市场支付到会员  3：会员冻结支付到市场
	 @XmlElement(name="FuncFlag")
	 private int funcFlag;
	 //子账户
	 @XmlElement(name="CustAcctId")
	 @Length(max=32)
	 @NotEmpty
	 private String custAcctId;
	 //会员代码
	 @XmlElement(name="ThirdCustId")
	 @Length(max=32)
	 @NotEmpty
	 private String thirdCustId;
	 //交易金额
	 @XmlElement(name="TranAmount")
	 private double tranAmount;
	//币种  默认：RMB
	@XmlElement(name="CcyCode")
	@Length(max=3)
	@NotEmpty
	private String ccyCode;
	//订单号
	@XmlElement(name="ThirdHtId")
	@Length(max=30)
	@NotEmpty
	private String thirdHtId;
	//备注
	@XmlElement(name="Note")
	@Length(max=120)
	private String note;
	

	
	public String getSupAcctId() {
		return supAcctId;
	}
	public void setSupAcctId(String supAcctId) {
		this.supAcctId = supAcctId;
	}
	public int getFuncFlag() {
		return funcFlag;
	}
	public void setFuncFlag(int funcFlag) {
		this.funcFlag = funcFlag;
	}
	public String getCustAcctId() {
		return custAcctId;
	}
	public void setCustAcctId(String custAcctId) {
		this.custAcctId = custAcctId;
	}
	public String getThirdCustId() {
		return thirdCustId;
	}
	public void setThirdCustId(String thirdCustId) {
		this.thirdCustId = thirdCustId;
	}
	public double getTranAmount() {
		return tranAmount;
	}
	public void setTranAmount(double tranAmount) {
		this.tranAmount = tranAmount;
	}
	public String getCcyCode() {
		return ccyCode;
	}
	public void setCcyCode(String ccyCode) {
		this.ccyCode = ccyCode;
	}
	public String getThirdHtId() {
		return thirdHtId;
	}
	public void setThirdHtId(String thirdHtId) {
		this.thirdHtId = thirdHtId;
	}
	public String getNote() {
		return note;
	}
	public void setNote(String note) {
		this.note = note;
	}
	@Override
	protected String[] order() {
		 String[] objs = {"supAcctId","funcFlag","custAcctId","thirdCustId","tranAmount","ccyCode","thirdHtId","note","reserve"};
	     return objs;
	}
	@Override
	protected String tranFunc() {
		return "1031";
	}
}
